# res 状态码，状态码和json，是怎么一起返回的？

from fastapi import FastAPI, Response
from fastapi.responses import JSONResponse

app = FastAPI()


@app.get("/items/{item_id}")
async def read_item(item_id: int):
    if item_id == 0:
        # 使用JSONResponse：适合需要返回JSON数据的情况，可以直接设置状态码和内容。
        return JSONResponse(status_code=404, content={"message": "Item not found"})

    return {"item_id": item_id, "name": "Item name", "price": 10.0}


@app.get("/items2/{item_id}")
async def read_item2(item_id: int, response: Response):
    # 使用Response：适合需要更灵活的控制响应的场景，比如设置头信息等。
    if item_id == 0:
        response.status_code = 404
        return {"message": "Item not found"}

    return {"item_id": item_id, "name": "Item name", "price": 10.0}